/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ucab.desarrollo.viajesbook.actions;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import ucab.desarrollo.viajesbook.AppContext;
import java.util.Date;
import java.util.Map;
import ucab.desarrollo.viajesbook.beans.Usuario;
import ucab.desarrollo.viajesbook.beans.Viaje;
import ucab.desarrollo.viajesbook.negocio.ViajeBO;

/**
 *
 * @author isak
 */
public class ViajeCrearAction extends ActionSupport
{

    private static final long serialVersionUID = 2228056990625416790L;

    private static final String VIAJE_CREADO= "Viaje Creado Exitosamente";

    private static final String ERROR_INTERNO = "Error interno. Por favor, inténtelo otra vez en unos minutos.";

    private String fechaini;

    private String fechafin;

    private String hospedaje;

    private String mensaje;

    private String lista;

    private String tipo;

    private String select;

    private String ops;

    /**
     * Metodo que permite la creacion de viajes especificando
     * si es privado o publico
     */
    @Override
    public String execute()
    {
         String destino = INPUT;
         DateFormat ini= new SimpleDateFormat("mm-dd-yyyy");
         DateFormat fin= new SimpleDateFormat("mm-dd-yyyy");
         try
        {
            Date InicioViaje= ini.parse(fechaini);
            Date FinViaje=fin.parse(fechafin);

            Map session = ActionContext.getContext().getSession();
            Usuario usuario = (Usuario)session.get("usuario");

            Viaje viaje = (Viaje)AppContext.getApplicationContext().getBean("viaje");

            viaje.setUsuario(usuario);
            viaje.setViajeFechaFin(FinViaje);
            viaje.setViajeFechaInicio(InicioViaje);
            if (tipo.equals("Privado")){
                viaje.setViajeppublico(1);

            }else{
                viaje.setViajeppublico(0);

            }

            viaje.setViajealojamiento(hospedaje);

           //TODO setear el pais y la cuidad

            ViajeBO dao = new ViajeBO();
            dao.guardarViaje(viaje);

        destino = SUCCESS;

        }
        catch (Exception e)
        {
             setMensaje(ERROR_INTERNO);
        }

        return destino;
    }

    /**
     * Devuelve la fecha de finalizacion del viaje
     * @return
     */
    public String getFechafin() {
        return fechafin;
    }

    /**
     * Asigna el valor de la fecha de finalizacion del viaje
     *
     */
    public void setFechafin(String fechafin) {
        this.fechafin = fechafin;
    }

    /**
     * Devuelve la fecha inicial del viaje
     * @return
     */
    public String getFechaini() {
        return fechaini;
    }

    /**
     * signa el valor de la fecha inicial del viaje
     *
     */
    public void setFechaini(String fechaini) {
        this.fechaini = fechaini;
    }

    /**
     * Devuelve el hospedaje del viaje
     * @return
     */
    public String getHospedaje() {
        return hospedaje;
    }

    /**
     * Asigna el valor de hospedaje del viaje
     *
     */
    public void setHospedaje(String hospedaje) {
        this.hospedaje = hospedaje;
    }

 

    public String getLista() {
        return lista;
    }


    public void setLista(String lista) {
        this.lista = lista;
    }

    /**
     * Devuelve el tipo del viaje: privado o publico
     * @return
     */
    public String getTipo() {
        return tipo;
    }

    /**
     * Asigna el valor a tipo del viaje: publico o privado
     *
     */
    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

    /**
     * @return the mensaje
     */
    public String getMensaje() {
        return mensaje;
    }

    /**
     * @param mensaje the mensaje to set
     */
    public void setMensaje(String mensaje) {
        this.mensaje = mensaje;
    }
}

